Code coverage report for src/resource-registry.js

Statements: 47.69% (31 / 65)      Branches: 20.83% (5 / 24)      Functions: 28.57% (6 / 21)      Lines: 46.55% (27 / 58)      Ignored: none     

All files » src/ » resource-registry.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 1121     1   1   1   1                                 1   1     1 1                   1       1       1         1       1       1       1     1   1 1                 1   1       1       1       1       1       1     1        
System.register(['aurelia-path'], function (_export) {
  'use strict';
 
  var relativeToFile, ResourceRegistry, ViewResources;
 
  function _inherits(subClass, superClass) { Iif (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); Eif (superClass) subClass.__proto__ = superClass; }
 
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
 
  function register(lookup, name, resource, type) {
    if (!name) {
      return;
    }
 
    var existing = lookup[name];
    if (existing) {
      if (existing != resource) {
        throw new Error('Attempted to register ' + type + ' when one with the same name already exists. Name: ' + name + '.');
      }
 
      return;
    }
 
    lookup[name] = resource;
  }
 
  return {
    setters: [function (_aureliaPath) {
      relativeToFile = _aureliaPath.relativeToFile;
    }],
    execute: function () {
      ResourceRegistry = (function () {
        function ResourceRegistry() {
          _classCallCheck(this, ResourceRegistry);
 
          this.attributes = {};
          this.elements = {};
          this.valueConverters = {};
          this.attributeMap = {};
          this.baseResourceUrl = '';
        }
 
        ResourceRegistry.prototype.registerElement = function registerElement(tagName, behavior) {
          register(this.elements, tagName, behavior, 'an Element');
        };
 
        ResourceRegistry.prototype.getElement = function getElement(tagName) {
          return this.elements[tagName];
        };
 
        ResourceRegistry.prototype.registerAttribute = function registerAttribute(attribute, behavior, knownAttribute) {
          this.attributeMap[attribute] = knownAttribute;
          register(this.attributes, attribute, behavior, 'an Attribute');
        };
 
        ResourceRegistry.prototype.getAttribute = function getAttribute(attribute) {
          return this.attributes[attribute];
        };
 
        ResourceRegistry.prototype.registerValueConverter = function registerValueConverter(name, valueConverter) {
          register(this.valueConverters, name, valueConverter, 'a ValueConverter');
        };
 
        ResourceRegistry.prototype.getValueConverter = function getValueConverter(name) {
          return this.valueConverters[name];
        };
 
        return ResourceRegistry;
      })();
 
      _export('ResourceRegistry', ResourceRegistry);
 
      ViewResources = (function (_ResourceRegistry) {
        function ViewResources(parent, viewUrl) {
          _classCallCheck(this, ViewResources);
 
          _ResourceRegistry.call(this);
          this.parent = parent;
          this.viewUrl = viewUrl;
          this.valueConverterLookupFunction = this.getValueConverter.bind(this);
        }
 
        _inherits(ViewResources, _ResourceRegistry);
 
        ViewResources.prototype.relativeToView = function relativeToView(path) {
          return relativeToFile(path, this.viewUrl);
        };
 
        ViewResources.prototype.getElement = function getElement(tagName) {
          return this.elements[tagName] || this.parent.getElement(tagName);
        };
 
        ViewResources.prototype.mapAttribute = function mapAttribute(attribute) {
          return this.attributeMap[attribute] || this.parent.attributeMap[attribute];
        };
 
        ViewResources.prototype.getAttribute = function getAttribute(attribute) {
          return this.attributes[attribute] || this.parent.getAttribute(attribute);
        };
 
        ViewResources.prototype.getValueConverter = function getValueConverter(name) {
          return this.valueConverters[name] || this.parent.getValueConverter(name);
        };
 
        return ViewResources;
      })(ResourceRegistry);
 
      _export('ViewResources', ViewResources);
    }
  };
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL3RlbXBsYXRpbmcvc3JjL3Jlc291cmNlLXJlZ2lzdHJ5LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztzQkFtQmEsZ0JBQWdCLEVBbUNoQixhQUFhOzs7Ozs7QUFwRDFCLFdBQVMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQztBQUM3QyxRQUFHLENBQUMsSUFBSSxFQUFDO0FBQ1AsYUFBTztLQUNSOztBQUVELFFBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QixRQUFHLFFBQVEsRUFBQztBQUNWLFVBQUcsUUFBUSxJQUFJLFFBQVEsRUFBRTtBQUN2QixjQUFNLElBQUksS0FBSyw0QkFBMEIsSUFBSSwyREFBc0QsSUFBSSxPQUFJLENBQUM7T0FDN0c7O0FBRUQsYUFBTztLQUNSOztBQUVELFVBQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUM7R0FDekI7Ozs7b0NBakJPLGNBQWM7OztBQW1CVCxzQkFBZ0I7QUFDaEIsaUJBREEsZ0JBQWdCLEdBQ2Q7Z0NBREYsZ0JBQWdCOztBQUV6QixjQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUNyQixjQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztBQUNuQixjQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUMxQixjQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUN2QixjQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjs7QUFQVSx3QkFBZ0IsV0FTM0IsZUFBZSxHQUFBLHlCQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUM7QUFDaEMsa0JBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDMUQ7O0FBWFUsd0JBQWdCLFdBYTNCLFVBQVUsR0FBQSxvQkFBQyxPQUFPLEVBQUM7QUFDakIsaUJBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvQjs7QUFmVSx3QkFBZ0IsV0FpQjNCLGlCQUFpQixHQUFBLDJCQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFDO0FBQ3BELGNBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsY0FBYyxDQUFDO0FBQzlDLGtCQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1NBQ2hFOztBQXBCVSx3QkFBZ0IsV0FzQjNCLFlBQVksR0FBQSxzQkFBQyxTQUFTLEVBQUM7QUFDckIsaUJBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNuQzs7QUF4QlUsd0JBQWdCLFdBMEIzQixzQkFBc0IsR0FBQSxnQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFDO0FBQzFDLGtCQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDMUU7O0FBNUJVLHdCQUFnQixXQThCM0IsaUJBQWlCLEdBQUEsMkJBQUMsSUFBSSxFQUFDO0FBQ3JCLGlCQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7O2VBaENVLGdCQUFnQjs7O2tDQUFoQixnQkFBZ0I7O0FBbUNoQixtQkFBYTtBQUNiLGlCQURBLGFBQWEsQ0FDWixNQUFNLEVBQUUsT0FBTyxFQUFDO2dDQURqQixhQUFhOztBQUV0QixzQ0FBTyxDQUFDO0FBQ1IsY0FBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsY0FBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDdkIsY0FBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkU7O2tCQU5VLGFBQWE7O0FBQWIscUJBQWEsV0FReEIsY0FBYyxHQUFBLHdCQUFDLElBQUksRUFBQztBQUNsQixpQkFBTyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzQzs7QUFWVSxxQkFBYSxXQVl4QixVQUFVLEdBQUEsb0JBQUMsT0FBTyxFQUFDO0FBQ2pCLGlCQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEU7O0FBZFUscUJBQWEsV0FnQnhCLFlBQVksR0FBQSxzQkFBQyxTQUFTLEVBQUM7QUFDckIsaUJBQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1RTs7QUFsQlUscUJBQWEsV0FvQnhCLFlBQVksR0FBQSxzQkFBQyxTQUFTLEVBQUM7QUFDckIsaUJBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMxRTs7QUF0QlUscUJBQWEsV0F3QnhCLGlCQUFpQixHQUFBLDJCQUFDLElBQUksRUFBQztBQUNyQixpQkFBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0U7O2VBMUJVLGFBQWE7U0FBUyxnQkFBZ0I7OytCQUF0QyxhQUFhIiwiZmlsZSI6Ii9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL3RlbXBsYXRpbmcvc3JjL3Jlc291cmNlLXJlZ2lzdHJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtyZWxhdGl2ZVRvRmlsZX0gZnJvbSAnYXVyZWxpYS1wYXRoJztcblxuZnVuY3Rpb24gcmVnaXN0ZXIobG9va3VwLCBuYW1lLCByZXNvdXJjZSwgdHlwZSl7XG4gIGlmKCFuYW1lKXtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgZXhpc3RpbmcgPSBsb29rdXBbbmFtZV07XG4gIGlmKGV4aXN0aW5nKXtcbiAgICBpZihleGlzdGluZyAhPSByZXNvdXJjZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdHRlbXB0ZWQgdG8gcmVnaXN0ZXIgJHt0eXBlfSB3aGVuIG9uZSB3aXRoIHRoZSBzYW1lIG5hbWUgYWxyZWFkeSBleGlzdHMuIE5hbWU6ICR7bmFtZX0uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbG9va3VwW25hbWVdID0gcmVzb3VyY2U7XG59XG5cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVJlZ2lzdHJ5IHtcbiAgY29uc3RydWN0b3IoKXtcbiAgICB0aGlzLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICB0aGlzLmVsZW1lbnRzID0ge307XG4gICAgdGhpcy52YWx1ZUNvbnZlcnRlcnMgPSB7fTtcbiAgICB0aGlzLmF0dHJpYnV0ZU1hcCA9IHt9O1xuICAgIHRoaXMuYmFzZVJlc291cmNlVXJsID0gJyc7XG4gIH1cblxuICByZWdpc3RlckVsZW1lbnQodGFnTmFtZSwgYmVoYXZpb3Ipe1xuICAgIHJlZ2lzdGVyKHRoaXMuZWxlbWVudHMsIHRhZ05hbWUsIGJlaGF2aW9yLCAnYW4gRWxlbWVudCcpO1xuICB9XG5cbiAgZ2V0RWxlbWVudCh0YWdOYW1lKXtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50c1t0YWdOYW1lXTtcbiAgfVxuXG4gIHJlZ2lzdGVyQXR0cmlidXRlKGF0dHJpYnV0ZSwgYmVoYXZpb3IsIGtub3duQXR0cmlidXRlKXtcbiAgICB0aGlzLmF0dHJpYnV0ZU1hcFthdHRyaWJ1dGVdID0ga25vd25BdHRyaWJ1dGU7XG4gICAgcmVnaXN0ZXIodGhpcy5hdHRyaWJ1dGVzLCBhdHRyaWJ1dGUsIGJlaGF2aW9yLCAnYW4gQXR0cmlidXRlJyk7XG4gIH1cblxuICBnZXRBdHRyaWJ1dGUoYXR0cmlidXRlKXtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG4gIH1cblxuICByZWdpc3RlclZhbHVlQ29udmVydGVyKG5hbWUsIHZhbHVlQ29udmVydGVyKXtcbiAgICByZWdpc3Rlcih0aGlzLnZhbHVlQ29udmVydGVycywgbmFtZSwgdmFsdWVDb252ZXJ0ZXIsICdhIFZhbHVlQ29udmVydGVyJyk7XG4gIH1cblxuICBnZXRWYWx1ZUNvbnZlcnRlcihuYW1lKXtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNvbnZlcnRlcnNbbmFtZV07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFZpZXdSZXNvdXJjZXMgZXh0ZW5kcyBSZXNvdXJjZVJlZ2lzdHJ5IHtcbiAgY29uc3RydWN0b3IocGFyZW50LCB2aWV3VXJsKXtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgIHRoaXMudmlld1VybCA9IHZpZXdVcmw7XG4gICAgdGhpcy52YWx1ZUNvbnZlcnRlckxvb2t1cEZ1bmN0aW9uID0gdGhpcy5nZXRWYWx1ZUNvbnZlcnRlci5iaW5kKHRoaXMpO1xuICB9XG5cbiAgcmVsYXRpdmVUb1ZpZXcocGF0aCl7XG4gICAgcmV0dXJuIHJlbGF0aXZlVG9GaWxlKHBhdGgsIHRoaXMudmlld1VybCk7XG4gIH1cblxuICBnZXRFbGVtZW50KHRhZ05hbWUpe1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRzW3RhZ05hbWVdIHx8IHRoaXMucGFyZW50LmdldEVsZW1lbnQodGFnTmFtZSk7XG4gIH1cblxuICBtYXBBdHRyaWJ1dGUoYXR0cmlidXRlKXtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVNYXBbYXR0cmlidXRlXSB8fCB0aGlzLnBhcmVudC5hdHRyaWJ1dGVNYXBbYXR0cmlidXRlXTtcbiAgfVxuXG4gIGdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpe1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXNbYXR0cmlidXRlXSB8fCB0aGlzLnBhcmVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgfVxuXG4gIGdldFZhbHVlQ29udmVydGVyKG5hbWUpe1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ29udmVydGVyc1tuYW1lXSB8fCAgdGhpcy5wYXJlbnQuZ2V0VmFsdWVDb252ZXJ0ZXIobmFtZSk7XG4gIH1cbn1cbiJdfQ==